package com.caioweb.osa.mb;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.enterprise.inject.Produces;
import javax.faces.bean.ViewScoped;
import javax.inject.Inject;

import com.caio.svn.UtilSvn;
import com.caioweb.osa.dao.DAO;
import com.caioweb.osa.modelo.Branch;
import com.caioweb.osa.transacoes.interceptor.Transactional;

@ViewScoped
public class BranchBean implements Serializable{

	@Inject
	private Branch branch;
	@Inject
	private DAO<Branch> dao;
	
	
	private List<Branch> lista = new ArrayList<Branch>();
	@Transactional
	public void grava(){
		if(branch.getId() != null){
			
			dao.atualiza(branch);
			UtilSvn.mensagem("Branch gravado com sucesso!!" ,true);
		}else{
			UtilSvn.mensagem("Branch Atualizado com sucesso!!" ,true);
			dao.adiciona(branch);
		}
		this.lista = dao.listaTodos();
		this.branch = new Branch();
	}
	
	@Transactional
	public void remove(Branch branch){
		dao.remove(branch);
		this.lista = dao.listaTodos();
		this.branch = new Branch();
		
	}
	@Transactional
	public List<Branch> branchs(){
		if(lista == null || lista.isEmpty() ){
		this.lista = dao.listaTodos();
		}
		return lista;
	}
	
	public Branch getBranch() {
		return branch;
	}
	public void setBranch(Branch branch) {
		this.branch = branch;
	}
	public DAO<Branch> getDao() {
		return dao;
	}
	public void setDao(DAO<Branch> dao) {
		this.dao = dao;
	}
	
	public List<Branch> getLista() {
		return lista;
	}
	public void setLista(List<Branch> lista) {
		this.lista = lista;
	}
	
	
}
